// 给你一个整数数组 perm ，它是前 n 个正整数的排列，且 n 是个 奇数 。
// 它被加密成另一个长度为 n - 1 的整数数组 encoded ，满足 encoded[i] = perm[i] XOR perm[i + 1] 。比方说，如果 perm = [1,3,2] ，那么 encoded = [2,1] 。
// 给你 encoded 数组，请你返回原始数组 perm 。题目保证答案存在且唯一。
// 输入：encoded = [3,1]
// 输出：[1,2,3]
// 解释：如果 perm = [1,2,3] ，那么 encoded = [1 XOR 2,2 XOR 3] = [3,1]

function decode(encoded: number[]): number[] {
  let n: number = encoded.length + 1
  let perm: number[] = [0]
  for (let i: number = 1; i <= n; i++) {
      perm[0] ^= i
  }
  encoded.forEach((e, index) => {
      if (index % 2 == 1) {
          perm[0] ^= e
      }
  })
  encoded.forEach((e, index) => {
      perm[index + 1] = e ^ perm[index]
  })
  return perm
};


